Conventional video encoding utilizes a number of techniques to reduce the size of a compressed video stream. Reducing the size of this data can allow the data to be transferred over a network more efficiently and decoded and/or decompressed at the destination. In certain domains such as video conferencing or remote desktop applications, a common scenario arises in which many macroblocks of the video do not change often from one frame of a video stream to the next frame. In those cases, data from an early video frame macroblock can be used to render an associated macroblock of a later frame of the video stream as long as the data in the macroblock does not substantially change from one frame to the next.
As a result of this technique, virtually all video encoding schemes provide a mechanism to flag a macroblock to be skipped. That is, if a macroblock is flagged to be skipped in a given frame, it is understood that the image within that area (the macroblock) of the video can be simply copied from the previous frame. Therefore, such data in subsequent frames need not be encoded and need not be transferred over a network in order to be rendered correctly at the destination.
Many encoding standards include a single bit field in a header associated with each macroblock to indicate whether the macroblock is to be skipped or not. If the field is set, then no video data for that macroblock is encoded and the decoder simply uses the data from a previous frame of the video. Thus, in cases where a macroblock does not change from one frame of a video stream to the next, the entire macroblock can effectively be represented by a single bit of data.
Other modern video encoding standards include in a macroblock header a number of skipped blocks. For applications that include a large number of consecutive skipped macroblocks, these encoding standards can represent the entire macroblock with approximately 0.1 bits by simply encoding in the header that the macroblock is to be skipped as are the next 10 macroblocks. Such techniques have enabled very sophisticated video applications to be utilized over conventional communications networks such as the Internet. However, conventional techniques still encode a significant amount of information to represent these skipped blocks.